iT邦幫忙

2022 iThome 鐵人賽

DAY 26
0
影片教學

小題大作的30個 HackMD 技巧系列 第 26

Day 26 : HackMD API 來用 Python 串接吧

  • 分享至 

  • xImage
  •  

Day 26 : HackMD API 來用 Python 串接吧

hackmd-github-sync-badge

Yes

HackMD API

PyHackMD

  • 由使用者順手建立的 Python 操作 HackMD API 套件。
  • 將各種操作 API 的 CRUD 功能包成 Python 可用的介面,感恩。

PyHackMD 使用案例

  • 安裝Python

  • 安裝PyHackMD

    !pip install PyHackMD
    
  • 取得文章列表(以下案例皆在 執行)

    from PyHackMD import API
    
    api = API(HACKMD_API_TOKEN)
    data = api.get_note_list()
    pprint(len(data))
    pprint(data[0]) #觀察第一筆資料
    

  • 以DataFrame取得前5筆資料

    from PyHackMD import API
    import pandas as pd
    
    api = API(HACKMD_API_TOKEN)
    data = api.get_note_list()
    df = pd.DataFrame(data)
    df.head()
    

  • 取得編輯權限非owner的筆記,並且全改成owner

    from PyHackMD import API
    from pprint import pprint
    import time
    api = API(HACKMD_API_TOKEN)
    
    data = api.get_note_list()
    
    for note in data:
        if note['writePermission'] != 'owner':
            print(note['id'], note['title'], note['writePermission'])
            time.sleep(1)
            api.update_note( note_id=note['id'], write_permission = "owner")
            time.sleep(1)
            _ = api.get_note(note_id=note['id'])
            print(_['id'], _['title'], _['writePermission'])
    

  • 刪除名稱未定義,內容為空的筆記

    from PyHackMD import API
    from pprint import pprint
    import time
    api = API(HACKMD_API_TOKEN)
    
    data = api.get_note_list()
    for note in data:
        if (note['title'] == 'Untitled') :
            print(note)
            _ = api.get_note(note_id = note['id'])
            if _["content"] == "": 
                print(_['id'], _['title'], _["content"])
                api.delete_note(_['id'])
    


以上也貢獻在官方API use case - 用API批次修改文章權限(PyHackMD),另因為迴圈查找的關係,注意您的 API 請求數量有每月2000 個請求、每 5 分鐘 100 個請求限制,再次強調目前免費皆可使用,佛心到我以為付費才有。

分享今日簡報,以及至今已公開的所有簡報,供您一次瀏覽!


上一篇
Day 25 : HackMD 佐 Obsidian
下一篇
Day 27 : HackMD API 打造 LINE-BOT 賴爸特助 (on Fly.io)
系列文
小題大作的30個 HackMD 技巧30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言